var entityCollection = require('../../../Base/server/controllers/EntityCollection'),
	BaseFun = require('../../../Base/server/controllers/Function'),
	ParameterFunction = require('../../../Common/server/controllers/Parameter.server.function'),
	TerminalController = require('../../../CBO/server/controllers/Terminal.server.controller.js'),
	Schedule = require('../../../Common/server/controllers/Schedule.js');

module.exports = function(app) {
	Schedule.addScheduler('deleteHistoryRecord', '删除历史监控记录', '删除历史监控记录方法', 'modules/CBO/server/controllers/DeviceMonitor.server.controller', 'deleteHistoryRecord');
	
	var entity = entityCollection.getEntity("Terminal");
	entity.addEventListener("Inserting", function(){
		return new Promise(function(resolve, reject) {
			TerminalController.registerCheck().then(function(isLicit){
				if(!isLicit){
					var newErr = new Error();
		            newErr.leval = 9;
		            newErr.title = '新增终端记录错误';
		            newErr.message = '新增设备数超过授权数！';
		            reject(newErr);
				}
				else{
					resolve(true);
				}
			});
		}).catch(
			err => reject(err)
		);
	});

	entity.addEventListener("Inserted", function(){
		// return new Promise(function(resolve, reject) {
		// 	if(this.SourceType != CBOEnum.TerminalSourceType.EMM.Value){
		// 	    ParameterFunction.getParameterValue("EMM", function(err, data){
		// 	    	if(err){
		// 	    		reject(err);
		// 	    	}
		// 	    	else{
		// 	    		if(data && data.trim().length > 0){
		// 	    			if(data.split(':').length != 2){
		// 	    				var newErr = new Error();
		// 			            newErr.leval = 9;
		// 			            newErr.title = 'EMM地址设置错误';
		// 			            newErr.message = '系统参数的EMM服务器地址设置错误！';
		// 			            reject(newErr);
		// 	    			}
		// 	    			else{
		// 	    				var options = {
		// 					        hostname: data.split(':')[0],
		// 					        port: data.split(':')[1],
		// 					        path: ''
		// 					    };
		// 					    //调用EMM注册终端服务
		// 						BaseFun.requestHttp(options, this).then(data => resolve(data)).catch(err => reject(err));
		// 					}
		// 				}
		// 				else{
		// 					resolve(true);
		// 				}
		// 	    	}
		// 	    });
		// 	}
		// 	else{
		// 		resolve(true);
		// 	}
		// });
	});

	entity.addEventListener("Deleting", function(){
		// return new Promise(function(resolve, reject) {
		// 	if(this.SourceType != CBOEnum.TerminalSourceType.EMM.Value){
		// 	    ParameterFunction.getParameterValue("EMM", function(err, data){
		// 	    	if(err){
		// 	    		reject(err);
		// 	    	}
		// 	    	else{
		// 	    		if(data && data.trim().length > 0){
		// 	    			if(data.split(':').length != 2){
		// 	    				var newErr = new Error();
		// 			            newErr.leval = 9;
		// 			            newErr.title = 'EMM地址设置错误';
		// 			            newErr.message = '系统参数的EMM服务器地址设置错误！';
		// 			            reject(newErr);
		// 	    			}
		// 	    			else{
		// 	    				var options = {
		// 					        hostname: data.split(':')[0],
		// 					        port: data.split(':')[1],
		// 					        path: ''
		// 					    };
		// 					    //调用EMM删除终端服务
		// 						BaseFun.requestHttp(options, this).then(data => resolve(data)).catch(err => reject(err));
		// 					}
		// 				}
		// 				else{
		// 					resolve(true);
		// 				}
		// 	    	}
		// 	    });
		// 	}
		// });
	});

	entity.addEventListener("Updating", function(){
		// return new Promise(function(resolve, reject) {
		// 	if(this.SourceType != CBOEnum.TerminalSourceType.EMM.Value){
		// 	    ParameterFunction.getParameterValue("EMM", function(err, data){
		// 	    	if(err){
		// 	    		reject(err);
		// 	    	}
		// 	    	else{
		// 	    		if(data && data.trim().length > 0){
		// 	    			if(data.split(':').length != 2){
		// 	    				var newErr = new Error();
		// 			            newErr.leval = 9;
		// 			            newErr.title = 'EMM地址设置错误';
		// 			            newErr.message = '系统参数的EMM服务器地址设置错误！';
		// 			            reject(newErr);
		// 	    			}
		// 	    			else{
		// 	    				var options = {
		// 					        hostname: data.split(':')[0],
		// 					        port: data.split(':')[1],
		// 					        path: ''
		// 					    };
		// 					    //调用EMM删除终端服务
		// 						BaseFun.requestHttp(options, this).then(data => resolve(data)).catch(err => reject(err));
		// 					}
		// 				}
		// 				else{
		// 					resolve(true);
		// 				}
		// 	    	}
		// 	    });
		// 	}
		// });
	});

	// var entity = entityCollection.getEntity("Department");
	
	// entity.addEventListener("SetDefaultValue", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("SetDefaultValue: self.Name += 'A'");
	//         self.Name += "S";
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Validate", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Validate");
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Inserting", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Inserting: self.Name += 'I'");
	//         self.Name += "I";
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Inserted", function(){
	//     console.log("Inserted");
	//     console.log(this);
	// });

	// entity.addEventListener("Inserted", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Inserted");
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Deleting", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Deleting");
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Deleted", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Deleted");
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Updating", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Updating: self.Name += 'U'");
	//         self.Name += "U";
	//         console.log(self);
	//         resolve();
	//     });
	// });

	// entity.addEventListener("Updated", function(){
	//     var self = this;
	//     return new Promise(function(resolve, reject) {
	//         console.log("Updated");
	//         console.log(self);
	//         resolve();
	//     });
	// });
};
